home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #277 (1993)(Rhein-Sieg-Soft).zip
/
Franz PD Disk #277 (1993)(Rhein-Sieg-Soft).adf
/
AAV
/
AAV.p
< prev
next >
Wrap
Text File
|
1993-11-01
|
23KB
|
587 lines
PROGRAM Adressen_Verwaltung;
USES Printer;
CONST A = 500;
B = 5;
TYPE Angaben = STRING[30];
T_Adressen = ARRAY[1..A,1..B] OF Angaben;
VAR Adressen : T_Adressen;
Dateiname : Angaben;
Anzahl,IntWahl,Daten : INTEGER;
Wahl : CHAR;
Options : STRING;
Window : TEXT;
PROCEDURE Nothing
BEGIN
END;
PROCEDURE COORD(x,y:INTEGER);
BEGIN
WRITE(Window,chr($9b),y,';',x,'H');
END;
PROCEDURE DownWindow;
BEGIN
COORD(1,25);
WRITELN(Window,'=========================================================================');
WRITELN(Window,'=',Options,'=');
WRITELN(Window,'=========================================================================');
END;
PROCEDURE MainMenu;
BEGIN
Wahl := ' ';
CLRSCR(Window);
WRITELN(Window,'=========================================================================');
WRITELN(Window,'= A M I G A A D R E S S E N V E R W A L T U N G V 1 . 0 =');
WRITELN(Window,'=========================================================================');
Options :=' ©1993 Holger Mense **** Freeware *** !Copy Me, I Want To Travel! **** ';
DownWindow;
COORD(1,4);
WRITELN(window);
WRITELN(Window,' [1] ... Adressen eingeben');
WRITELN(Window,' [2] ... Adressen ausgeben');
WRITELN(Window,' [3] ... Adressen laden');
WRITELN(Window,' [4] ... Adressen speichern');
WRITELN(Window,' [5] ... Adressen sortieren');
WRITELN(Window,' [6] ... Adressen suchen');
WRITELN(Window,' [7] ... Adressen löschen');
WRITELN(Window,' [8] ... Adressen drucken');
WRITELN(Window,' [9] ... Informationen');
WRITELN(Window,' [0] ... Ende');
WRITELN(Window);
WRITE(Window,' > ');
READLN(Window,IntWahl);
END;
PROCEDURE Eingeben;
BEGIN
REPEAT;
Wahl := ' ';
Inc(Anzahl);
CLRSCR(Window);
WRITELN(Window,'=========================================================================');
WRITELN(Window,'= A D R E S S E N E I N G A B E =');
WRITELN(Window,'=========================================================================');
Options :=' Benutzen Sie die Tastatur für Ihre Eingaben, RETURN zum bestätigen... ';
DownWindow;
COORD(1,4);
WRITELN(Window);
REPEAT;
COORD(1,5);
WRITELN(Window,'Hausname : ');
WRITELN(Window,'Vorname : ');
WRITELN(Window,'Straße : ');
WRITELN(Window,'Stadt : ');
WRITELN(Window,'Telefonnummer : ');
COORD(17,5);READLN(Window,Adressen[Anzahl,1]);
COORD(17,6);READLN(Window,Adressen[Anzahl,2]);
COORD(17,7);READLN(Window,Adressen[Anzahl,3]);
COORD(17,8);READLN(Window,Adressen[Anzahl,4]);
COORD(17,9);READLN(Window,Adressen[Anzahl,5]);
COORD(1,23);
WRITE(Window,'Möchten Sie noch etwas ändern (j/n)? ');
READLN(Window,Wahl);
UNTIL (Wahl = 'n') OR (Wahl = 'N');
COORD(1,23);
WRITE(Window,'Möchten Sie noch eine Adresse eingeben (j/n)? '); READLN(Window,Wahl);
UNTIL (Wahl = 'n') OR (Wahl ='N');
Daten := 1;
END;
PROCEDURE Ausgeben;
VAR x : INTEGER;
Action : CHAR;
BEGIN
IF Daten = 0 THEN Nothing
ELSE BEGIN
CLRSCR(Window);
WRITELN(Window,'=========================================================================')
WRITELN(Window,'= A D R E S S E N A U S G A B E =')
WRITELN(Window,'=========================================================================')
Options :=' + = Datensatz weiter | - = Datensatz zurück | 0 = Ende ='
DownWindow;
COORD(1,4);
WRITELN(Window);
x := 1;
REPEAT;
IF Action = '+' THEN x := x + 1;
IF Action = '-' THEN x := x - 1;
IF x > Anzahl THEN x := Anzahl;
IF x < 1 THEN x := 1;
COORD(1,5);
WRITELN(Window,'Adressen Gesamt: ',Anzahl,' *** Adressennummer: ',x);
COORD(1,7);
WRITELN(Window,'Hausname : ',Adressen[x,1],' ');
WRITELN(Window,'Vorname : ',Adressen[x,2],' ');
WRITELN(Window,'Straße : ',Adressen[x,3],' ');
WRITELN(Window,'Stadt : ',Adressen[x,4],' ');
WRITELN(Window,'Telefonnummer : ',Adressen[x,5],' ');
WRITELN(Window);
WRITE(Window,'> ');
READLN(Window,Action);
UNTIL Action = '0';
END;
END;
PROCEDURE Laden;
VAR Datei : TEXT;
y,z : INTEGER;
DatName : STRING
BEGIN
Wahl := ' ';
CLRSCR(Window);
WRITELN(Window,'==========================================================================');
WRITELN(Window,'= A D R E S S E N L A D E N =');
WRITELN(Window,'==========================================================================');
WRITELN(Window);
IF Daten = 1 THEN WRITELN(Window,'ACHTUNG! NICHT GESPEICHERTE DATEN SIND IM SPEICHER! DIESE WERDEN GELÖSCHT!');
WRITE(Window,'Name der Datei [RETURN = Exit]: ');
READLN(Window,DatName);
IF DatName = '' THEN WRITELN(Window)
ELSE BEGIN
DatName := CONCAT(DatName,'.AAV');
WRITELN(Window);WRITELN(Window,'Lade Daten aus dem File ',DatName,'... Bitte warten...');
ASSIGN(Datei,DatName);
RESET(Datei);
READLN(Window,Datei,Anzahl);
FOR y := 1 to Anzahl DO
BEGIN
FOR z := 1 to 5 DO
READLN(Window,Datei,Adressen[y,z]);
END;
CLOSE(Datei);
Daten := 1;
END;
END;
PROCEDURE Speichern;
VAR Datei : TEXT;
y,z : INTEGER;
DatName : STRING;
BEGIN
IF Daten = 0 THEN Nothing
ELSE BEGIN
Wahl := ' ';
CLRSCR(Window);
WRITELN(Window,'=========================================================================')
WRITELN(Window,'= A D R E S S E N S P E I C H E R N =')
WRITELN(Window,'=========================================================================')
WRITELN(Window);
WRITE(Window,'Name der Datei [RETURN = Exit]: ');
READLN(Window,DatName);
IF DatName = '' THEN WRITELN
ELSE BEGIN
DatName := CONCAT(DatName,'.AAV');
WRITELN(Window);WRITELN(Window,'Speicher Daten in das File ',DatName,'... Bitte warten...');
ASSIGN(Datei,DatName);
REWRITE(Datei);
WRITELN(Datei,Anzahl);
FOR y := 1 to Anzahl DO
BEGIN
FOR z := 1 to 5 DO
WRITELN(Datei,Adressen[y,z]);
END;
CLOSE(Datei);
Daten := 0;
END;
END;
END;
PROCEDURE Sortieren;
VAR z,u,Src : INTEGER;
Help : ARRAY[1..5] OF Angaben;
BEGIN
IF Daten = 0 THEN Nothing
ELSE BEGIN
REPEAT;
Wahl := ' ';
CLRSCR(Window);
WRITELN(Window,'=========================================================================');
WRITELN(Window,'= A D R E S S E N S O R T I E R E N =');
WRITELN(Window,'=========================================================================');
WRITELN(Window);
WRITELN(Window,' Sortierkriterium:');
WRITELN(Window);
WRITELN(Window,' [1] ... Hausname');
WRITELN(Window,' [2] ... Vorname');
WRITELN(Window,' [3] ... Straße');
WRITELN(Window,' [4] ... Stadt');
WRITELN(Window,' [5] ... Ende');
WRITELN(Window);
WRITE(Window,' > ');
READLN(Window,Wahl);
UNTIL (Wahl > '0') AND (Wahl < '6');
CASE Wahl OF
'1' : BEGIN
Src := 1; END;
'2' : BEGIN
Src := 2; END;
'3' : BEGIN
Src := 3; END;
'4' : BEGIN
Src := 4; END;
'5' : BEGIN
MainMenu; END;
END;
CLRSCR(Window);
WRITELN(Window,'=========================================================================');
WRITELN(Window,'= A D R E S S E N S O R T I E R E N =');
WRITELN(Window,'=========================================================================');
WRITELN(Window);WRITELN(Window,'Sortiere ',Anzahl,' Adressen nach dem Alphabet... Bitte warten...');
WRITELN(Window);
FOR z := 2 TO Anzahl DO
BEGIN
IF Adressen[z-1,Src] > Adressen [Z,Src] THEN BEGIN
FOR u := 1 TO 5 DO
BEGIN
Help[u] := Adressen[z-1,u];
Adressen[z-1,u] := Adressen[z,u];
Adressen[z,u] := Help[u];
END;
END;
COORD(1,7);
IF Anzahl-z = 1 THEN WRITELN(Window,Anzahl-z,' Adresse muß noch sortiert werden... ')
ELSE WRITELN(Window,Anzahl-z,' Adressen müssen noch sortiert werden...')
COORD(1,9); WRITELN(Window,'Hausname : ',Adressen[z,1]);
COORD(1,10);WRITELN(Window,'Vorname : ',Adressen[z,2]);
COORD(1,11);WRITELN(Window,'Straße : ',Adressen[z,3]);
COORD(1,12);WRITELN(Window,'Stadt : ',Adressen[z,4]);
COORD(1,13);WRITELN(Window,'Telefonnummer : ',Adressen[z,5]);
END;
END;
END;
PROCEDURE Suchen;
VAR Return,Gesucht:STRING[30]
x,SuchWahl,y : INTEGER;
BEGIN
IF Daten = 0 THEN Nothing
ELSE BEGIN
REPEAT;
Wahl := ' ';
CLRSCR(Window);
WRITELN(Window,'=========================================================================');
WRITELN(Window,'= A D R E S S E N S U C H E N =');
WRITELN(Window,'=========================================================================');
WRITELN(Window);
WRITELN(Window,' Suchkriterium:');
WRITELN(Window);
WRITELN(Window,' [1] ... Hausname');
WRITELN(Window,' [2] ... Vorname');
WRITELN(Window,' [3] ... Straße');
WRITELN(Window,' [4] ... Stadt');
WRITELN(Window,' [5] ... Telefonnummer');
WRITELN(Window,' [0] ... Ende');
WRITELN(Window);
WRITE(Window,' > ');
READLN(Window,SuchWahl);
UNTIL (SuchWahl > -1) AND (SuchWahl < 6);
IF Wahl = '0' THEN MainMenu;
CLRSCR(Window);
Wahl := ' ';
WRITELN(Window,'=========================================================================');
WRITELN(Window,'= A D R E S S E N S U C H E N =');
WRITELN(Window,'=========================================================================');
WRITELN(Window);
CASE SuchWahl OF
1 : BEGIN
x := 1;
END;
2 : BEGIN
x := 2;
END;
3 : BEGIN
x := 3;
END;
4 : BEGIN
x := 4;
END;
5 : BEGIN
x := 5;
END;
0 : BEGIN
MainMenu;
END;
END;
WRITE(Window,'Gesucht : ');READLN(Window,Gesucht);
FOR y := 1 TO Anzahl DO
BEGIN
IF Gesucht = Adressen[y,x] THEN BEGIN
COORD(1,5); WRITELN(Window,'Hausname : ',Adressen[y,1],' ');
COORD(1,6); WRITELN(Window,'Vorname : ',Adressen[y,2],' ');
COORD(1,7); WRITELN(Window,'Straße : ',Adressen[y,3],' ');
COORD(1,8); WRITELN(Window,'Stadt : ',Adressen[y,4],' ');
COORD(1,9); WRITELN(Window,'Telefonnummer : ',Adressen[y,5],' ');
END;
END;
COORD(1,12);
WRITE(Window,' [RETURN]'); READLN(Window,Return);
END;
BEGIN
END;
END;
PROCEDURE Drucktyp1;
VAR x : INTEGER;
BEGIN
FOR x := 1 TO Anzahl DO
BEGIN
COORD(1,8); WRITELN(Window,'Hausname : ',Adressen[x,1],' '); WRITELN(lst,'Hausname : ',Adressen[x,1]);
COORD(1,9); WRITELN(Window,'Vorname : ',Adressen[x,2],' '); WRITELN(lst,'Vorname : ',Adressen[x,2]);
COORD(1,10);WRITELN(Window,'Straße : ',Adressen[x,3],' '); WRITELN(lst,'Straße : ',Adressen[x,3]);
COORD(1,11);WRITELN(Window,'Stadt : ',Adressen[x,4],' '); WRITELN(lst,'Stadt : ',Adressen[x,4]);
COORD(1,12);WRITELN(Window,'Telefonnummer : ',Adressen[x,5],' '); WRITELN(lst,'Telefonnummer : ',Adressen[x,5]); WRITELN(lst,' ');
END;
END;
PROCEDURE Drucktyp2;
VAR x : INTEGER;
BEGIN
FOR x := 1 TO Anzahl DO
BEGIN
COORD(1,8); WRITELN(Window,Adressen[x,2],' ',Adressen[x,1],' '); WRITELN(lst,Adressen[x,2],' ',Adressen[x,1]);
COORD(1,9); WRITELN(Window,Adressen[x,3],' '); WRITELN(lst,Adressen[x,3]);
COORD(1,10);WRITELN(Window,Adressen[x,4],' '); WRITELN(lst,Adressen[x,4]);
COORD(1,11);WRITELN(Window,'Tel.: ',Adressen[x,5],' '); WRITELN(lst,'Tel.: ',Adressen[x,5]); WRITELN(lst,' ');
END;
END;
PROCEDURE Drucken;
VAR x : INTEGER;
NewWahl : CHAR;
BEGIN
IF Daten = 0 THEN Nothing
ELSE BEGIN
Wahl := ' ';
CLRSCR(Window);
WRITELN(Window,'=========================================================================');
WRITELN(Window,'= A D R E S S E N D R U C K E N =');
WRITELN(Window,'=========================================================================');
Options :=' C.O.M.P.U.T.E.R AN D.R.U.C.K.E.R + C.O.M.P.U.T.E.R AN D.R.U.C.K.E.';
DownWindow;
COORD(1,4);
WRITELN(Window);WRITE(Window,'Wollen Sie wirklich drucken (j/n)? ');
READLN(Window,NewWahl);
IF (NewWahl = 'n') OR (NewWahl = 'N') THEN MainMenu
ELSE REPEAT
CLRSCR(Window);
WRITELN(Window,'=========================================================================');
WRITELN(Window,'= A D R E S S E N D R U C K E N =');
WRITELN(Window,'=========================================================================');
DownWindow;
COORD(1,4);
WRITELN(Window);
WRITELN(Window,'Typ 1: | Typ 2:');
WRITELN(Window,'Hausname : Mense | Holger Mense');
WRITELN(Window,'Vorname : Holger | Im Schilffeld 34');
WRITELN(Window,'Straße : Im Schilffeld 34 | 33378 Rheda-Wiedenbrück');
WRITELN(Window,'Stadt : 33378 Rheda-Wiedenbrück | Tel.: 05242 / 2891');
WRITELN(Window,'Telefonnummmer : 05242 / 2891 |');
WRITELN(Window,'-----------------------------------------+-------------------------------');
WRITELN(Window);WRITE(Window,'In welchem Modus sollen Ihre Adressen gedruckt werden? Typ 1 oder 2 (1/2): ');
READLN(Window,NewWahl);
UNTIL (NewWahl = '1') OR (NewWahl = '2');
CLRSCR(Window);
WRITELN(Window,'=========================================================================');
WRITELN(Window,'= A D R E S S E N D R U C K E N =');
WRITELN(Window,'=========================================================================');
WRITELN(Window);WRITELN(Window,'Drucke...');
WRITELN(Window);
IF NewWahl = '1' THEN Drucktyp1
ELSE Drucktyp2
END;
END;
PROCEDURE AllesLoeschen;
VAR x,z : INTEGER;
BEGIN
CLRSCR(Window);
WRITELN(Window,'=========================================================================');
WRITELN(Window,'= A D R E S S E N L Ö S C H E N =');
WRITELN(Window,'=========================================================================');
WRITELN(Window);
WRITELN(Window,'Wenn Sie jetzt "j" (JA) eingeben, dann sind ihre gesamten Adressen');
WRITE(Window,'unwiederruflich verloren!! Sind Sie sicher (j/n)? ');READLN(Window,Wahl);
IF (Wahl = 'j') OR (Wahl = 'J') THEN
FOR x := 1 TO Anzahl DO
BEGIN
FOR z := 1 TO 5 DO
BEGIN
Adressen[x,z] := '';
END;
Anzahl := 0
Daten := 1;
END;
END;
PROCEDURE BestimmteLoeschen;
VAR a,b,Adressennummer : INTEGER;
BEGIN
CLRSCR(Window);
WRITELN(Window,'=========================================================================');
WRITELN(Window,'= A D R E S S E N L Ö S C H E N =');
WRITELN(Window,'=========================================================================');
WRITELN(Window);
WRITELN(Window,'Hausname : ');
WRITELN(Window,'Vorname : ');
WRITELN(Window,'Stadt : ');
WRITELN(Window,'Straße : ');
WRITELN(Window,'Telefonnummer : ');
WRITELN(Window);
WRITE(Window,'Welche Adressennummer wollen Sie löschen (',Anzahl-Anzahl+1,' -> ',Anzahl,'): ');
READLN(Window,Adressennummer);
IF Adressennummer = 0 THEN Nothing
ELSE BEGIN
COORD(17,5); WRITELN(Window,Adressen[Adressennummer,1]);
COORD(17,6); WRITELN(Window,Adressen[Adressennummer,2]);
COORD(17,7); WRITELN(Window,Adressen[Adressennummer,3]);
COORD(17,8); WRITELN(Window,Adressen[Adressennummer,4]);
COORD(17,9); WRITELN(Window,Adressen[Adressennummer,5]);
COORD(1,11); WRITELN(Window,' ');
COORD(1,11); WRITE(Window,'Sind Sie sicher (j/n)? '); READLN(Window,Wahl);
IF (Wahl = 'j') OR (Wahl= 'J') THEN BEGIN
FOR a := Adressennummer to Anzahl-1 DO
BEGIN
FOR b := 1 to 5 DO
BEGIN
Adressen[a,b] := Adressen[a+1,b];
END;
END;
FOR b := 1 to 5 DO
BEGIN
Adressen[Anzahl,b] := '';
END;
Anzahl := Anzahl - 1;
Daten := 1;
END;
END;
END;
PROCEDURE Loeschen;
VAR Loesch : INTEGER;
BEGIN
IF Daten = 0 THEN Nothing
ELSE BEGIN
REPEAT;
CLRSCR(Window);
WRITELN(Window,'=========================================================================');
WRITELN(Window,'= A D R E S S E N L Ö S C H E N =');
WRITELN(Window,'=========================================================================');
WRITELN(Window);
WRITELN(Window,' [1] ... Alle Adressen löschen');
WRITELN(Window,' [2] ... Bestimmte Adressen löschen');
WRITELN(Window,' [0] ... Ende');
WRITELN(Window);
WRITE(Window,' > ');
READLN(Window,Loesch);
UNTIL (Loesch > -1) OR (Loesch < 3);
IF Loesch = 1 THEN AllesLoeschen
IF Loesch = 2 THEN BestimmteLoeschen;
IF Loesch = 3 THEN MainMenu;
END;
END;
PROCEDURE Info;
VAR Return : STRING
BEGIN
CLRSCR(Window);
WRITELN(Window,'AMIGA ADRESSEN VERWALTUNG [AAV] V1.0');
WRITELN(Window);
WRITELN(Window,'Copyright 1993 Holger Mense');
WRITELN(Window,'Freeware - kopieren erlaubt...');
WRITELN(Window);
WRITELN(Window,'Für Fragen, Verbesserungen, Programmfehler etc. schreiben Sie an:');
WRITELN(Window);
WRITELN(Window,' ***************************');
WRITELN(Window,' * Holger Mense *');
WRITELN(Window,' * Im Schilffeld 34 *');
WRITELN(Window,' * 33378 Rheda-Wiedenbrück *');
WRITELN(Window,' * Tel.: 05242 / 2891 *');
WRITELN(Window,' ***************************');
WRITELN(Window);
WRITELN(Window);
WRITE(Window,' [RETURN]');
READLN(Window,Return)
END;
BEGIN
ASSIGN(Window, 'CON:0/0/640/256/AAV V1.0');
RESET(Window);
IF EOF(Window) THEN ERROR('Could not open window!');
Anzahl := 0;
Daten := 0;
REPEAT;
REPEAT;
REPEAT;
MainMenu;
IF IntWahl = 1 THEN Eingeben;
IF IntWahl = 2 THEN Ausgeben;
IF IntWahl = 3 THEN Laden;
IF IntWahl = 4 THEN Speichern;
IF IntWahl = 5 THEN Sortieren;
IF IntWahl = 6 THEN Suchen;
IF IntWahl = 7 THEN Loeschen;
IF IntWahl = 8 THEN Drucken;
IF IntWahl = 9 THEN Info;
UNTIL (IntWahl > 0 ) OR (IntWahl <10);
UNTIL IntWahl = 0;
CLRSCR(Window);
COORD(26,15); WRITE(Window,'Sind Sie sicher (j/n)? '); READLN(Window,Wahl);
UNTIL (Wahl = 'j') OR (Wahl = 'J');
CLOSE(Window);
WRITELN;WRITELN('AMIGA ADRESSEN VERWALTUNG by HOLGER MENSE /// ©1993 /// FREEWARE');
WRITELN;
END.